$(function () {
    $('input').iCheck({
        checkboxClass: 'icheckbox_square-blue',
        radioClass: 'iradio_square-blue',
        increaseArea: '10%' /* optional */
    });

    $('.imgcode').click(function () {
        var url = ctx + "captcha/captchaImage?type=" + captchaType + "&s=" + Math.random();
        $(".imgcode").attr("src", url);
    });

    $("#login").click(function(){
        login();
    });

    $(window).keydown(function (e){
        if(e.keyCode == 13){
            $("#vcode").blur();
            login();
        }
    });

    //记住密码
    var name = localStorage.getItem("name");
    var password = localStorage.getItem("password");
    if(name && password){
        $('#name').val(name);
        $('#password').val(password);
        //$("#checkbox").prop("checked", true);
        $('#checkbox').iCheck('check');
    }

    createBootstrapValidator();
});

function login(){
    if(!isValid()){
        return false;
    }
    var obj = {
        loginName: $("#name").val(),
        password: $("#password").val(),
        validateCode: $("input[name='vcode']").val()
    };
    request('/admin/login', 1, obj, function (data) {
        // 判断图形验证码的
        if (data == null || data == '') {
            $('.imgcode').click();
            layer.msg('<span style="color: black">'+"验证码错误！"+'</span>', {icon: 5});
            return
        }
        if (data.code == 0) {
            //记住密码
            if($('#checkbox').prop('checked')){
                localStorage.setItem("name", obj.loginName);
                localStorage.setItem("password", obj.password);
            }else{
                localStorage.setItem("name", "");
                localStorage.setItem("password", "");
            }
            location.href = "/admin/index";
        } else {
            layer.msg('<span style="color: black">'+data.msg+'</span>', {icon: 5});
        }
    }, function (error) {

    })
}

function isValid(){
    //重置表单验证结果到未验证状态
    $('form').data('bootstrapValidator').resetForm();
    //重新验证表单
    $('form').data('bootstrapValidator').validate();
    //返回验证结果
    return $('form').data('bootstrapValidator').isValid();
}

function createBootstrapValidator(){
    $('form').bootstrapValidator({
        /*
         * 生效规则（三选一）
         * enabled 字段值有变化就触发验证
         * disabled,submitted 当点击提交时验证并展示错误信息
         */
        //live: 'enabled',
        /*
         * 为每个字段设置统一触发验证方式（也可在fields中为每个字段单独定义），默认是live配置的方式，数据改变就改变
         * 也可以指定一个或多个（多个空格隔开） 'focus blur keyup'
         */
        //trigger: 'keyup change',
        /*
         * 表单域配置
         */
        feedbackIcons: {
            valid: 'glyphicon glyphicon-ok',
            invalid: 'glyphicon glyphicon-remove',
            validating: 'glyphicon glyphicon-refresh'
        },
        fields: {
            name: {
                validators: {
                    notEmpty: {
                        message: '用户名不能为空'
                    },
                    stringLength: {
                        min: 1,
                        max: 20,
                        message: '用户名长度不能少于1个或超过20个字符'
                    },
                    /*regexp: {
                        regexp: /^[A-Za-z0-9]+$/,
                        message: '用户名只能是字母或数字'
                    }*/
                }
            },
            password: {
                validators: {
                    notEmpty: {
                        message: '用户密码不能为空'
                    },
                    stringLength: {
                        min: 1,
                        max: 20,
                        message: '用户密码长度不能少于1个或超过20个字符'
                    },
                    /*regexp: {
                        regexp: /^[A-Za-z0-9]+$/,
                        message: '用户密码只能是字母或数字'
                    }*/
                }
            },
            vcode: {
                validators: {
                    notEmpty: {
                        //message: '验证码不能为空'
                        message: ' '
                    },
                    regexp: {
                        regexp: /^[0-9]+$/,
                        //message: '验证码只能是数字'
                        message: ' '
                    }
                }
            },
        }
    });
}